package JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Test03 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            // 1. 注册驱动
//            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            // 2. 注册驱动的第二种方式, 常用的
            // 建立连接的操作为 DriverManager.registerDriver(new com.mysql.jdbc.Driver())
            // 但是 com.mysql.jdbc.Driver 类中有静态代码块中执行了这一个操作
            // 所以只要生成该类的类对象, 就会自动执行静态代码块, 就会执行上面的操作
            // 所以下面的操作也不用接收返回值, 因为我们不需要类对象, 只想让他执行静态代码块中的内容
            Class.forName("com.mysql.jdbc.Driver");
            // 2. 获取连接
            String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true";
            String user = "root";
            String password = "991025";
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("连接建立成功");
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}
